<template>
  <div>
    <!-- 暂时显示所有内容，不管权限 -->
    <slot></slot>
    <!-- 调试信息 -->
    <div v-if="false" style="color: red; font-size: 12px; padding: 2px;">
      模块: {{ props.module }} 角色: {{ userRole }} 
      拥有权限模块: {{ userPermissions.modules?.join(', ') || '无' }}
    </div>
  </div>
</template>

<script setup>
/**
 * 权限控制组件
 * @file PermissionControl.vue
 * @description 基于用户角色和权限控制内容显示
 * @created 2024-08-15
 */
import { computed, onMounted } from 'vue'
import { useUserStore } from '@/stores/modules/user'

const props = defineProps({
  // 需要的模块权限，例如：'user_management', 'teacher_management'
  module: {
    type: String,
    required: false
  },
  // 需要的操作权限，例如：'view', 'add', 'edit', 'delete'
  action: {
    type: String,
    required: false
  },
  // 需要的角色，例如：'school_admin', 'college_admin', 'class_admin'
  role: {
    type: String,
    required: false
  }
})

const userStore = useUserStore()

// 获取当前用户角色和权限
const userRole = computed(() => userStore.userInfo?.role || '')
const userPermissions = computed(() => userStore.permissions || {})

// 打印调试信息
onMounted(() => {
  console.log('用户角色:', userRole.value)
  console.log('用户权限:', userPermissions.value)
  console.log('模块权限要求:', props.module)
  console.log('操作权限要求:', props.action)
  console.log('角色要求:', props.role)
})

// 判断是否具有权限（暂时都返回true）
const hasPermission = computed(() => {
  return true
  
  // 原逻辑
  /*
  // 如果没有指定任何权限要求，则默认都可以访问
  if (!props.module && !props.action && !props.role) {
    return true
  }

  // 角色检查
  if (props.role && userRole.value !== props.role) {
    return false
  }

  // 模块权限检查
  if (props.module) {
    const modules = userPermissions.value.modules || []
    if (!modules.includes(props.module)) {
      return false
    }
  }

  // 操作权限检查
  if (props.action && props.module) {
    const actions = userPermissions.value.actions || {}
    const moduleActions = actions[props.module] || []
    if (!moduleActions.includes(props.action)) {
      return false
    }
  }

  return true
  */
})
</script> 